home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 83
/
64er_Magazin_Sonderheft_83_19xx_Markt__Technik_de_Side_B.d64
/
no scratch
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
87 lines
100 rem beispiel fuer eine kleine
101 rem directory-manipulation:
102 rem scratch-schutz einzelner files
103 rem nach anzeige des filenamens:
104 rem j = schuetze dies file
105 rem n = weiter zum naechsten file
106 rem e = ende
107 rem achtung !!! "schuetzt" auch
108 rem schon gescratchte files wenn
109 rem verlangt, stellt sie aber nicht
110 rem wieder her !!!
111 rem scratch-schutz wird im direct.
112 rem durch ein '<' hinter dem
113 rem filetyp angezeigt. naeheres
114 rem siehe tabelle folge 1 !!!
115 rem achtung !!! nur zusammen mit
116 rem den unterprogrammen 1 & 2
117 rem lauffaehig !!!
118 :
119 :
120 mm=0
130 mm=mm+1:dd$="":gosub1000
140 if dd$=nn$thenend
150 printmid$(dd$,4,16):inputaa$
160 if aa$="e"then end
170 if aa$="n"then 130
180 hh$=left$(dd$,1)
190 hh$=chr$(asc(hh$)or2^6)
200 dd$=hh$+right$(dd$,29)
210 gosub2000
220 goto 130
230 end
1000 rem unterprogramm 1
1001 rem lesen eines eintrages aus dem
1002 rem directory (alle 30 bytes !!!)
1003 rem in die variable dd$
1004 rem uebergabeparameter:
1005 rem mm=nummer des eintrages der
1006 rem gelesen werden soll
1007 :
1008 :
1009 :
1010 open 15,8,15,"i":open8,8,8,"#"
1020 nn$="":fori=1to30:nn$=nn$+chr$(0):nexti
1030 xx=int((mm-1)/8)
1040 print#15,"u1 8 0 18 0"
1050 forzz=1toxx+1
1060 print#15,"b-p 8 0"
1070 get#8,tt$:tt=asc(tt$+chr$(0))
1080 get#8,ss$:ss=asc(ss$+chr$(0))
1090 if tt=0 then dd$=nn$:goto1170
1100 print#15,"u1 8 0";tt;ss
1110 nextzz
1120 pp=mm-(xx*8):pp=(pp-1)*32+2
1130 print#15,"b-p 8";pp
1140 forzz=1 to 30:get#8,zz$
1150 ifzz$=""thenzz$=chr$(0)
1160 dd$=dd$+zz$:nextzz
1170 close 8:close 15
1180 return
2000 rem unterprogramm 2
2001 rem schreiben eines eintrages in
2002 rem das directory (30 bytes !!!)
2003 rem uebergabeparameter:
2004 rem mm=nummer des eintrages der
2005 rem geschrieben werden soll
2006 rem dd$=directoryeintrag
2007 :
2008 :
2009 :
2010 open 15,8,15,"i":open8,8,8,"#"
2020 xx=int((mm-1)/8)
2030 print#15,"u1 8 0 18 0"
2040 forzz=1toxx+1
2050 print#15,"b-p 8 0"
2060 get#8,t$:tt=asc(t$+chr$(0))
2070 get#8,s$:ss=asc(s$+chr$(0))
2080 if tt=0 then 2150
2090 print#15,"u1 8 0";tt;ss
2100 nextzz
2110 pp=mm-(xx*8):pp=(pp-1)*32+2
2120 print#15,"b-p 8";pp
2130 print#8,dd$;
2140 print#15,"u2 8 0";tt;ss
2150 close 8:close 15
2160 return